//home模块的store（状态管理）
import { getCategoryList, getSlideList, getFloorList } from "@/api/api";

const state = {
  // 分类列表数据,默认为空数组
  categoryList: [],

  // mock数据，轮播图列表
  slideList: [],
  floorList: [],
};

const mutations = {
  // 设置分类列表数据
  // 接收参数setCategoryList
  SETCATEGORYLIST(state, setCategoryList) {
    state.categoryList = setCategoryList;
  },

  // 设置轮播图列表数据
  SETSLIDELIST(state, value) {
    state.slideList = value;
  },

  // 设置楼层数据
  SAVEFLOOTLIST(state, saveFloorList){
    state.floorList = saveFloorList;
  },
};

const actions = {
  // 通过API中接口函数调用，向服务器获取分类列表数据
  async setCategoryList({ commit }) {
    let result = await getCategoryList();
    if (result.data.code !== 200) {
      commit("SETCATEGORYLIST", result.data);
    }
  },

  // 通过API中接口函数调用，向服务器获取轮播图数据
  async setSlideList({ commit }) {
     // 发请求获取数据
    const { code,message,data } = await getSlideList();
    // 判断业务逻辑是否成功
    if (code === 200) {
      commit("SETSLIDELIST", data);
    } else {
      console.log(`获取轮播图数据失败：${message}`);
    }
  },

  // 通过API中接口函数调用，向服务器获取楼层数据
  async saveFloorList({ commit }) {
    let result = await getFloorList();
    if (result.code !== 200) {
      commit("SAVEFLOOTLIST", result.data.data);// 保存楼层数据
    }
  },
};

const getters = {};

export default {
  state,
  mutations,
  actions,
  getters,
};
